//
//  HomeTableViewController.swift
//  sinaweibo
//
//  Created by mac on 15/11/8.
//  Copyright © 2015年 mac. All rights reserved.
//

import UIKit
import AFNetworking
import SVProgressHUD

private let homeCellId = "homeCellId"

class HomeTableViewController: BaseTableViewController {

    private lazy var statuses = [Status]()
    override func viewDidLoad() {
        super.viewDidLoad()
        if !userLogin {
        visitorLoginView?.setUIInfo(nil, title: "关注一些人，回这里看看有什么惊喜")
            return
        }
        prepareTableViewCell()
        
        //加载数据
        loadData()
    }

    //添加注册cell的方法
    private func prepareTableViewCell() {
        //下拉刷新
        refreshControl = UIRefreshControl()
        
        refreshControl?.addTarget(self, action: "loadData", forControlEvents: .ValueChanged)
        
        tableView.registerClass(StatusCell.self, forCellReuseIdentifier: homeCellId)
//        self.tableView.rowHeight = 150
        //预估行高
        tableView.estimatedRowHeight = 200
        //自动计算行高  要使用自动计算行高,必须要有一个自上而下的约束
        tableView.rowHeight = UITableViewAutomaticDimension
        
        //取消分割线
        tableView.separatorStyle = .None
    }
    
    //加载首页数据
    @objc private func loadData() {
    
        StatusListViewModel.loadData { (array) -> () in
            //取消refreshControl
            self.refreshControl?.endRefreshing()
            
            if array == nil {
                SVProgressHUD.showErrorWithStatus(AppErrorTip)
                return
            }
            self.statuses = array!
            
            self.tableView.reloadData()
        }
    }
    
}


extension HomeTableViewController{

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return statuses.count
    }
    
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier(homeCellId, forIndexPath: indexPath) as! StatusCell
        
        cell.status = statuses[indexPath.row]
//        print(cell.status?.retweeted_status?.text)
        
        return cell
    }
    
    
    
    
    
    
    
    
    
    
}